﻿using System;

namespace LearnInterface
{
    class Program
    {
        static void Main(string[] args)
        {
            Xx x = new Xx();
            ((A)x).Cc();  //输出 Xx.A.Cc
            ((B)x).Cc();  //输出 Xx.B.Cc

            Console.ReadKey();
        }
    }

    interface IMammal //哺乳动物接口
    {
        string Eye { get; set; } //定义哺乳动物都有眼睛
        string Heart { get; set; }//定义哺乳动物都有心脏

        void Eat();     //定义哺乳动物都会吃
    }

    interface Ihuman : IMammal //人类接口
    {
        void Sleep();
    }

    class Citizen //公民类
    {
        public int ID { get; set; }

        public string Name { get; set; }
    }

    class Father : Citizen, Ihuman   //Citizen基类必须在 所有列表中第一位。否则编译器报错
    {
        public string Eye { get; set; }
        public string Heart { get; set; }

        public void Eat()
        {
            Console.WriteLine($"{nameof(Father)}.Eat {DateTime.Now}");
        }

        public void Sleep()
        {
            Console.WriteLine($"{nameof(Father)}.Sleep {DateTime.Now}");
        }
    }

    class Son : Father
    {

    }

    class Daughter : Father
    {

    }

    interface A
    {
        void Cc();
    }

    interface B
    {
        void Cc();
    }

    class Xx : A, B
    {
        void A.Cc()
        {
            Console.WriteLine($"{nameof(Xx)}.A.Cc");  //输出 Xx.Cc
        }

        void B.Cc()
        {
            Console.WriteLine($"{nameof(Xx)}.B.Cc");  //输出 Xx.Cc
        }
    }


}
